# -*- coding:utf-8 -*-
#coding:gbk
"""
分页工具类
使用方法
"""
class Pager:
    def __init__(self, url, total_count, page_size=20, cur_page=1):
        self.url = url#转向地址
        self.total_count = total_count#总条目数
        self.page_size = page_size#每页条目数
        self.cur_page = cur_page#当前页数
        self.page_count, tail = divmod(self.total_count, self.page_size)#获取总分页数
        if tail is not 0:self.page_count += 1
        self.pages = []#结果集

    def getPage(self):
        if self.cur_page > 1:
            self.pages.append('<a href="%s">上一页</a>&nbsp;' % (self.url % (self.cur_page - 1)))
            self.pages.append('<a href="%s">首页</a>&nbsp;' % (self.url % 1))
        if self.cur_page <= 5:limit_s = 1
        else:limit_s = self.cur_page - 4
        if self.page_count >= self.cur_page + 5:limit_e = self.cur_page + 5
        else:
            limit_e = self.page_count
            if self.cur_page >= 10:limit_s = self.cur_page - 9
        for i in xrange(limit_s, limit_e + 1):
            if self.cur_page == i:
                self.pages.append('<span>%s</span>&nbsp;' % self.cur_page)
            else:
                self.pages.append('<a href="%s">%s</a>&nbsp;' % (self.url % i, i))
        if self.cur_page < self.page_count:
            self.pages.append('<a href="%s">下一页</a>&nbsp;' % (self.url % (self.cur_page + 1)))
            self.pages.append('<a href="%s">尾页</a>&nbsp;' % (self.url % self.page_count))
        return "".join(self.pages)
    
if __name__ == '__main__':
    pages=Pager(url='/p?=%s',total_count=10000000,page_size=20,cur_page=20).getPage()
    print str(pages)